const path = require('path');
function resolve(dir) {
  return path.join(__dirname, dir);
}

module.exports = {
  /* baseUrl 将部署应用程序的基本URL type:{string} default:'/，但是从vue3.3版本开始弃用了，要用publicPath' */
  // publicPath: './', // 静态资源路径改为相对路径，否则静态资源路径会报错

  // eslint 是否在保存的时候检查
  lintOnSave: true,

  /* 放置生成的静态资源 (js、css、img、fonts) 的 (相对于 outputDir 的) 目录 */
  // assetsDir: 'static',

  /* 在npm run build 打包时 生成文件的目录 type:string, default:'dist' */
  outputDir: process.env.outputDir, // 打包生成目录

  /* 是否在构建生产包时生成 sourceMap 文件，false将提高构建速度 */
  productionSourceMap: false,

  /* 默认情况下，生成的静态资源在它们的文件名中包含了 hash 以便更好的控制缓存，你可以通过将这个选项设为 false 来关闭文件名哈希。(false的时候就是让原来的文件名不改变) */
  // filenameHashing: false,

  /* css相关配置 */
  css: {
    // 是否使用css分离插件 ExtractTextPlugin
    // extract: true,
    // 开启 CSS source maps?
    // sourceMap: false,
    // css预设器配置项
    // loaderOptions: {
    //   preProcessor: 'less',
    // },
    loaderOptions: {
      less: {
        lessOptions: {
          javascriptEnabled: true,
        },
      },
    },
    // 启用 CSS modules for all css / pre-processor files.
    // modules: false,
  },

  // less设置，less-loader至少6.x，避免与UI库的版本冲突
  // npm install style-resources-loader vue-cli-plugin-style-resources-loader less-loader less -S
  pluginOptions: {
    'style-resources-loader': {
      preProcessor: 'less',
      patterns: [resolve('src/assets/styles/common/variable.less')],
    },
  },

  // webPack-dev-server相关配置
  devServer: {
    open: true, // 自动打开浏览器
    // host: '0.0.0.0',
    port: 50001, // 端口号
    https: false,
    overlay: {
      warnings: true,
      errors: true,
    },
    // hotOnly: false,
    /* 配置跨域代理 */
    // proxy: 'http://localhost:4000' // 只有一个代理
    // proxy: {
    //   '/api': {
    //     target: '<url>',
    //     ws: true,
    //     changeOrigin: true,
    //   },
    //   '/foo': {
    //     target: '<other_url>',
    //   },
    // }, // 多个代理
  },

  chainWebpack: (config) => {
    /* 查看打包文件体积大小 */
    // config
    //   .plugin('webpack-bundle-analyzer')
    //   .use(require('webpack-bundle-analyzer').BundleAnalyzerPlugin);

    config.plugin('html').tap((args) => {
      args[0].title = 'vue3 + Ant'; // 修改浏览图页签的标题
      return args;
    });
  },
};
